今天介紹量詞(quantifier)
先來看以下基本例子
In [1]: import re
In [2]: re.search(r"^\d\d\d\d\d$", "12345") != None
Out[2]: True
In [3]: re.search(r"^\d\d\d\d\d$", "123456") != None
Out[3]: False
5個數字正確,6個數字不相符.這樣打一堆\d,使用上不方便.
所以引入了量詞.
來看應用
In [4]: re.search(r"^\d{6}$", "123456") != None
Out[4]: True
In [5]: re.search(r"^\d{5}$", "12345") != None
Out[5]: True
這樣方便多了.
表示法如下表,裡面x,y之間不能有空白隔開!切記!
編號 形式 意義
1 {x} 前面元素需出現x次,上面的基本範例就是這種方式
2 {x,y} 前面元素最少出現x次,最多出現y次
3 {x,} 前面元素最少出現x次,次數無上限
4 {0,y} 前面元素可以不出現,最多出現y次.其實就是第二種的特例.
來看應用:
In [6]: re.search(r"^\d{4,6}$", "12345") != None
Out[6]: True
符合2
In [7]: re.search(r"^\d{4,6}$", "123") != None
Out[7]: False
不合2
In [8]: re.search(r"^\d{4,6}$", "1234567") != None
Out[8]: False
不合2
In [9]: re.search(r"^\d{4,}$", "1234567") != None
Out[9]: True
符合3
In [10]: re.search(r"^\d{4,}$", "123") != None
Out[10]: False
不合3
In [11]: re.search(r"^\d{0,3}$", "123") != None
Out[11]: True
符合4
In [12]: re.search(r"^\d{0,3}$", "1234") != None
Out[12]: False
不合4
In [13]: re.search(r"^\d{0,3}[ab]{0,4}$", "123a") != None
Out[13]: True
符合4
In [14]: re.search(r"^\d{0,3}[ab]{0,4}$", "123ab") != None
Out[14]: True
符合4
In [15]: re.search(r"^\d{0,3}[ab]{0,2}$", "123aba") != None
Out[15]: False
不合4
量詞還有其他格式的表示法,我們明天繼續介紹.